package gui;

import java.awt.Dimension;
import java.awt.TextArea;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import java.awt.Color;

import javax.swing.JOptionPane;
import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import ge.escola.Sala;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class CadastraSala extends javax.swing.JPanel {
	private JLabel checaDescricao;
	private JLabel caixaMaior;
	private JLabel titulo;
	private JButton botaoVoltar;
	private JLabel checaCapacidade;
	private JLabel checaIdentificacao;
	private JButton botaoLimpar;
	private JButton botaoCadastrar;
	private TextArea areaDescricao;
	private JTextField campoCapacidade;
	private JTextField campoIdentificacao;
	private JLabel descricao;
	private JLabel capacidade;
	private JLabel numIdentificacao;
	private boolean validaIdentificacao=false, validaCapacidade=false, validaDescricao=false;
	
	public CadastraSala() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			this.setPreferredSize(new java.awt.Dimension(800, 600));
			this.setLayout(null);
			this.setBackground(new java.awt.Color(204,204,255));
			{
				titulo = new JLabel();
				this.add(titulo);
				titulo.setText("                    Cadastro de Salas");
				titulo.setFont(new java.awt.Font("Arial",0,36));
				titulo.setBounds(58, 12, 704, 44);
				titulo.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				titulo.setForeground(new java.awt.Color(0,102,102));
			}
			{
				numIdentificacao = new JLabel();
				this.add(numIdentificacao);
				numIdentificacao.setText("Numero de identificacao");
				numIdentificacao.setBounds(103, 125, 309, 34);
				numIdentificacao.setFont(new java.awt.Font("Arial",0,24));
				numIdentificacao.setForeground(new java.awt.Color(0,102,102));
			}
			{
				capacidade = new JLabel();
				this.add(capacidade);
				capacidade.setText("Capacidade de Alunos");
				capacidade.setBounds(103, 190, 263, 26);
				capacidade.setFont(new java.awt.Font("Arial",0,24));
				capacidade.setForeground(new java.awt.Color(0,102,102));
			}
			{
				descricao = new JLabel();
				this.add(descricao);
				descricao.setText("Descricao");
				descricao.setBounds(103, 248, 119, 37);
				descricao.setFont(new java.awt.Font("Arial",0,24));
				descricao.setForeground(new java.awt.Color(0,102,102));
			}
			{
				campoIdentificacao = new JTextField();
				this.add(campoIdentificacao);
				campoIdentificacao.setBounds(430, 133, 205, 21);
				campoIdentificacao.setFont(new java.awt.Font("Tahoma",0,18));
				campoIdentificacao.addKeyListener(new java.awt.event.KeyAdapter() {
		            public void keyReleased(java.awt.event.KeyEvent evt) {
		                caixaIdentificacaoKeyReleased(evt);
		            }
		        });
			}
			{
				campoCapacidade = new JTextField();
				this.add(campoCapacidade);
				campoCapacidade.setBounds(430, 197, 205, 21);
				campoCapacidade.setFont(new java.awt.Font("Tahoma",0,18));
				campoCapacidade.addKeyListener(new java.awt.event.KeyAdapter() {
		            public void keyReleased(java.awt.event.KeyEvent evt) {
		                caixaCapacidadeKeyReleased(evt);
		            }
		        });
			}
			{
				areaDescricao = new TextArea();
				this.add(areaDescricao);
				areaDescricao.setBounds(274, 262, 361, 126);
				areaDescricao.setFont(new java.awt.Font("Tahoma",0,18));
				areaDescricao.addKeyListener(new java.awt.event.KeyAdapter() {
		            public void keyReleased(java.awt.event.KeyEvent evt) {
		                caixaDescricaoKeyReleased(evt);
		            }
		        });
			}
			{
				botaoCadastrar = new JButton();
				this.add(botaoCadastrar);
				botaoCadastrar.setText("Cadastrar");
				botaoCadastrar.setBounds(209, 487, 136, 24);
				botaoCadastrar.setFont(new java.awt.Font("Arial",0,14));
				botaoCadastrar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				botaoCadastrar.setBackground(new java.awt.Color(255,255,255));
				botaoCadastrar.addMouseListener(new java.awt.event.MouseAdapter() {
		            public void mouseClicked(java.awt.event.MouseEvent evt){
		                try{
		                	cadastrarMouseClicked(evt);}
		                catch(Exception e){
		                	System.out.println(e.getMessage());
		                }
		            }
		        });
			}
			{
				botaoLimpar = new JButton();
				this.add(botaoLimpar);
				botaoLimpar.setText("Limpar");
				botaoLimpar.setBounds(379, 487, 136, 24);
				botaoLimpar.setFont(new java.awt.Font("Arial",0,14));
				botaoLimpar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				botaoLimpar.setBackground(new java.awt.Color(255,255,255));
				botaoLimpar.addMouseListener(new java.awt.event.MouseAdapter() {
		            public void mouseClicked(java.awt.event.MouseEvent evt){
		                try{
		                	LimparMouseClicked(evt);}
		                catch(Exception e){
		                	System.out.println(e.getMessage());
		                }
		            }
		        });
			}
			{
				botaoVoltar = new JButton();
				this.add(botaoVoltar);
				botaoVoltar.setText("Voltar");
				botaoVoltar.setBounds(551, 487, 136, 24);
				botaoVoltar.setFont(new java.awt.Font("Arial",0,14));
				botaoVoltar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				botaoVoltar.setBackground(new java.awt.Color(255,255,255));
				botaoVoltar.addMouseListener(new java.awt.event.MouseAdapter() {
		            public void mouseClicked(java.awt.event.MouseEvent evt){
		                try{
		                	VoltarMouseClicked(evt);}
		                catch(Exception e){
		                	System.out.println(e.getMessage());
		                }
		            }
		        });
			}
			{
				checaIdentificacao = new JLabel();
				this.add(checaIdentificacao);
				checaIdentificacao.setBounds(663, 133, 66, 21);
				checaIdentificacao.setFont(new java.awt.Font("Arial",0,18));
			}
			{
				checaCapacidade = new JLabel();
				this.add(checaCapacidade);
				checaCapacidade.setBounds(663, 195, 63, 23);
				checaCapacidade.setFont(new java.awt.Font("Arial",0,18));
			}
			{
				checaDescricao = new JLabel();
				this.add(checaDescricao);
				checaDescricao.setBounds(663, 302, 63, 21);
				checaDescricao.setFont(new java.awt.Font("Arial",0,18));
			}
			{
				caixaMaior = new JLabel();
				this.add(caixaMaior);
				caixaMaior.setBounds(55, 84, 709, 395);
				caixaMaior.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public void caixaIdentificacaoKeyReleased(java.awt.event.KeyEvent evt){
		String ident = campoIdentificacao.getText();
		int identificacao, cont=0;
		try{
			identificacao = Integer.parseInt(ident);
			for (int i=0;i<GerenciadorDeJanelas.todasSalas.size();i++){
				if(GerenciadorDeJanelas.todasSalas.get(i).getNumeroDeIdentificacao()==identificacao){
					checaIdentificacao.setText("Invalido");
					checaIdentificacao.setForeground(Color.RED);
					validaIdentificacao = false;
				}
				else{
					cont++;
				}
			}
			if (cont==GerenciadorDeJanelas.todasSalas.size()){
				checaIdentificacao.setText("Ok");
				checaIdentificacao.setForeground(Color.GREEN);
				validaIdentificacao = true;
			}
		}
		catch(Exception e){
			checaIdentificacao.setText("Invalido");
			checaIdentificacao.setForeground(Color.RED);
			validaIdentificacao = false;
		}
	}
	
	
	
	public void caixaCapacidadeKeyReleased(java.awt.event.KeyEvent evt){
		String capac = campoCapacidade.getText();
		int capacidade;
		try{
			capacidade = Integer.parseInt(capac);
			if(capacidade>=1){
			    checaCapacidade.setText("Ok");
			    checaCapacidade.setForeground(Color.GREEN);
			    validaCapacidade = true;
				}
			else{
				checaCapacidade.setText("Invalido");
			    checaCapacidade.setForeground(Color.RED);
			    validaCapacidade = false;
				}
		}
		catch(Exception e){
			checaCapacidade.setText("Invalido");
			checaCapacidade.setForeground(Color.RED);
			validaCapacidade = false;
		}
	}
	
	public void caixaDescricaoKeyReleased(java.awt.event.KeyEvent evt){
		String descricao = areaDescricao.getText();
		if(descricao.equals("") || descricao.replace(" ", "").replace("\n","").length()==0){
			checaDescricao.setText("Invalido");
			checaDescricao.setForeground(Color.RED);
			validaDescricao = false;
		}
		else{
			checaDescricao.setText("Ok");
			checaDescricao.setForeground(Color.GREEN);
			validaDescricao = true;
		}
	}
	
	public void cadastrarMouseClicked(java.awt.event.MouseEvent evt) throws Exception{
		if(validaIdentificacao && validaCapacidade && validaDescricao){
			int ide = Integer.parseInt(campoIdentificacao.getText());
			int cap = Integer.parseInt(campoCapacidade.getText());
			GerenciadorDeJanelas.todasSalas.add(new Sala(ide,cap,areaDescricao.getText()));
			GerenciadorDeJanelas.window.setVisible(false);
	        GerenciadorDeJanelas.window.setContentPane(GerenciadorDeJanelas.menuCadastra);
	        GerenciadorDeJanelas.window.setVisible(true);
	        validaIdentificacao=false;
			validaCapacidade = false;
			validaDescricao = false;
			checaDescricao.setText(null);
			checaIdentificacao.setText(null);
			checaCapacidade.setText(null);
			campoIdentificacao.setText("");
			campoCapacidade.setText("");
			areaDescricao.setText("");
			// transforma em xml
			String xmlSala = GerenciadorDeJanelas.ARQUIVADOR
					.toXML(GerenciadorDeJanelas.todasSalas);
			// grava o arrayXml no arquivo
			GerenciadorDeJanelas.gravar(GerenciadorDeJanelas.arquivoDeSalas,
					xmlSala);
		}
		else{
			JOptionPane.showMessageDialog(null,"Informa��es da sala n�o cadastradas. Por favor, cheque novamente as informa��es digitadas.");
		}
	}
	
	public void LimparMouseClicked(java.awt.event.MouseEvent evt) throws Exception{
		validaIdentificacao=false;
		validaCapacidade = false;
		validaDescricao = false;
		checaDescricao.setText(null);
		checaIdentificacao.setText(null);
		checaCapacidade.setText(null);
		campoIdentificacao.setText("");
		campoCapacidade.setText("");
		areaDescricao.setText("");
	}
	
	public void VoltarMouseClicked(java.awt.event.MouseEvent evt) throws Exception{
		validaIdentificacao=false;
		validaCapacidade = false;
		validaDescricao = false;
		checaIdentificacao.setText(null);
		campoIdentificacao.setText("");
		campoCapacidade.setText("");
		areaDescricao.setText("");
		GerenciadorDeJanelas.window.setVisible(false);
        GerenciadorDeJanelas.window.setContentPane(GerenciadorDeJanelas.menuCadastra);
        GerenciadorDeJanelas.window.setVisible(true);
	}

}
